home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / Macintosh Programmer’s Workshop / MPW 3.1 / MPW / Interfaces / CIncludes / Memory.h < prev    next >
Text File  |  1990-12-13  |  4KB  |  133 lines

  1. /************************************************************
  2.  
  3. Created: Thursday, September 7, 1989 at 4:55 PM
  4.     Memory.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.     Copyright Apple Computer, Inc.    1985-1989
  9.     All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __MEMORY__
  15. #define __MEMORY__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21. #define maxSize 0x800000    /*Max data block size is 8 megabytes*/
  22.  
  23. typedef long Size;
  24. typedef pascal long (*GrowZoneProcPtr)(Size cbNeeded);
  25.  
  26. struct Zone {
  27.     Ptr bkLim;
  28.     Ptr purgePtr;
  29.     Ptr hFstFree;
  30.     long zcbFree;
  31.     GrowZoneProcPtr gzProc;
  32.     short moreMast;
  33.     short flags;
  34.     short cntRel;
  35.     short maxRel;
  36.     short cntNRel;
  37.     short maxNRel;
  38.     short cntEmpty;
  39.     short cntHandles;
  40.     long minCBFree;
  41.     ProcPtr purgeProc;
  42.     Ptr sparePtr;
  43.     Ptr allocPtr;
  44.     short heapData;
  45. };
  46.  
  47. typedef struct Zone Zone;
  48. typedef Zone *THz;
  49.  
  50. #ifdef __cplusplus
  51. extern "C" {
  52. #endif
  53. pascal Ptr GetApplLimit(void)
  54.     = {0x2EB8,0x0130};
  55. pascal THz GetZone(void);
  56. pascal THz SystemZone(void)
  57.     = {0x2EB8,0x02A6};
  58. pascal THz ApplicZone(void)
  59.     = {0x2EB8,0x02AA};
  60. pascal Handle NewHandle(Size byteCount);
  61. pascal Handle NewHandleSys(Size byteCount); 
  62. pascal Handle NewHandleClear(Size byteCount);
  63. pascal Handle NewHandleSysClear(Size byteCount);
  64. pascal THz HandleZone(Handle h);
  65. pascal Handle RecoverHandle(Ptr p); 
  66. pascal Ptr NewPtr(Size byteCount);
  67. pascal Ptr NewPtrSys(Size byteCount);
  68. pascal Ptr NewPtrClear(Size byteCount); 
  69. pascal Ptr NewPtrSysClear(Size byteCount);
  70. pascal THz PtrZone(Ptr p);
  71. pascal Handle GZSaveHnd(void)
  72.     = {0x2EB8,0x0328};
  73. pascal Ptr TopMem(void)
  74.     = {0x2EB8,0x0108};
  75. pascal long MaxBlock(void); 
  76. pascal long StackSpace(void);
  77. pascal Handle NewEmptyHandle(void); 
  78. pascal void HLock(Handle h);
  79. pascal void HUnlock(Handle h);
  80. pascal void HPurge(Handle h);
  81. pascal void HNoPurge(Handle h); 
  82. pascal Ptr StripAddress(Ptr theAddress);
  83. pascal Size MFMaxMem(Size *grow)
  84.     = {0x3F3C,0x0015,0xA88F};
  85. pascal long MFFreeMem(void)
  86.     = {0x3F3C,0x0018,0xA88F};
  87. pascal Handle MFTempNewHandle(Size logicalSize,OSErr *resultCode)
  88.     = {0x3F3C,0x001D,0xA88F};
  89. pascal void MFTempHLock(Handle h,OSErr *resultCode)
  90.     = {0x3F3C,0x001E,0xA88F};
  91. pascal void MFTempHUnlock(Handle h,OSErr *resultCode)
  92.     = {0x3F3C,0x001F,0xA88F};
  93. pascal void MFTempDisposHandle(Handle h,OSErr *resultCode)
  94.     = {0x3F3C,0x0020,0xA88F};
  95. pascal Ptr MFTopMem(void)
  96.     = {0x3F3C,0x0016,0xA88F};
  97. pascal void InitApplZone(void); 
  98. pascal void InitZone(GrowZoneProcPtr pgrowZone,short cmoreMasters,Ptr limitPtr,
  99.     Ptr startPtr);
  100. pascal void SetZone(THz hz);
  101. pascal Size CompactMem(Size cbNeeded);
  102. pascal void PurgeMem(Size cbNeeded);
  103. pascal long FreeMem(void);
  104. pascal void ResrvMem(Size cbNeeded);
  105. pascal Size MaxMem(Size *grow); 
  106. pascal void SetGrowZone(GrowZoneProcPtr growZone);
  107. pascal void SetApplLimit(Ptr zoneLimit);
  108. pascal void MoveHHi(Handle h);
  109. pascal void DisposPtr(Ptr p);
  110. pascal Size GetPtrSize(Ptr p);
  111. pascal void SetPtrSize(Ptr p,Size newSize); 
  112. pascal void DisposHandle(Handle h); 
  113. pascal Size GetHandleSize(Handle h);
  114. pascal void SetHandleSize(Handle h,Size newSize);
  115. pascal void EmptyHandle(Handle h);
  116. pascal void ReallocHandle(Handle h,Size byteCount); 
  117. pascal void HSetRBit(Handle h); 
  118. pascal void HClrRBit(Handle h); 
  119. pascal void MoreMasters(void);
  120. pascal void BlockMove(Ptr srcPtr,Ptr destPtr,Size byteCount);
  121. pascal OSErr MemError(void)
  122.     = {0x3EB8,0x0220};
  123. pascal void PurgeSpace(long *total,long *contig);
  124. pascal char HGetState(Handle h);
  125. pascal void HSetState(Handle h,char flags); 
  126. pascal void SetApplBase(Ptr startPtr);
  127. pascal void MaxApplZone(void);
  128. #ifdef __cplusplus
  129. }
  130. #endif
  131.  
  132. #endif
  133.